/*
 * Command.h
 *
 *  Created on: 25 nov. 2011
 *      Author: mnemoi
 */
#ifndef _COMMAND_H_
#define _COMMAND_H_
#include <map>
#include "CommandRobot.h"
#include "InvocateurCommand.h"

using namespace std;
class InvocateurCommand;
class Command {

public:
	static map<string, Command*> lesCommandes;
	static InvocateurCommand inv;
	Command() {
	}
	Command(string d) {
		Command::lesCommandes[d] = this;
	}
	virtual Command* constVirtual(Robot *r){}

	static Command* nouvelCmd(string d, Robot* r) {
		return lesCommandes[d]->constVirtual(r);
	}

	virtual void executer(){}
	virtual void annuler() {

	}

};

#endif
